Rethinking Smart Contract Fuzzing: Fuzzing With Invocation Ordering and Important Branch Revisiting
نویسندگان
چکیده
Blockchain smart contracts have given rise to a variety of interesting and compelling applications emerged as revolutionary force for the Internet. Smart from various fields now hold over one trillion dollars worth virtual coins, attracting numerous attacks. Quite few practitioners devoted themselves developing tools detecting bugs in contracts. One line efforts revolve around static analysis techniques, which heavily suffer high false positive rates. Another works concentrate on fuzzing techniques. Unfortunately, current approaches tend conduct starting initial state contract, expends too much energy revolving contract thus is usually unable unearth triggered by other states. Moreover, most existing methods treat each branch equally, failing take care branches that are rare or more likely possess bugs. This might lead resources wasted normal branches. In this paper, we try tackle these challenges three aspects: 1) generating function invocation sequences, explicitly consider data dependencies between functions facilitate exploring richer We further prolong sequence $\mathcal {S}_{1}$ appending new {S}_{2}$ , so appended can start states different state; 2) incorporate distance-based measure evolve test cases iteratively towards target branch; 3) engage search algorithm discover vulnerable branches, design an allocation mechanism exercising crucial implement IR-Fuzz extensively evaluate it 12K real-world Empirical results show that: (i) achieves 28% higher coverage than state-of-the-art approaches, (ii) detects vulnerabilities increases average accuracy vulnerability detection 7% methods, (iii) fast, 350 per second. Our implementation dataset released at https://github.com/Messi-Q/IR-Fuzz hoping future research.
منابع مشابه
Well-typed generic smart-fuzzing for APIs
Despite recent advances in program certification, testing remains a widely-used component of the software development cycle. Various flavours of testing exist: popular ones include unit testing, which consists in manually crafting test cases for specific parts of the code base, as well as QuickCheck-style testing, where instances of a type are automatically generated to serve as test inputs. Th...
متن کاملH-Fuzzing: A New Heuristic Method for Fuzzing Data Generation
How to efficiently reduce the fuzzing data scale while assuring high fuzzing veracity and vulnerability coverage is a pivotal issue in program fuzz test. This paper proposes a new heuristic method for fuzzing data generation named with H-Fuzzing. H-Fuzzing achieves a high program execution path coverage by retrieving the static information and dynamic property from the program. Our experiments ...
متن کاملFuzzing with Code Fragments (-2)
Fuzz testing is an automated technique providing random data as input to a software system in the hope to expose a vulnerability. In order to be effective, the fuzzed input must be common enough to pass elementary consistency checks; a JavaScript interpreter, for instance, would only accept a semantically valid program. On the other hand, the fuzzed input must be uncommon enough to trigger exce...
متن کاملImproving Fuzzing with Symbolic Execution
Fuzzing is a great technique to, for example, discover and reproduce software system vulnerabilities. However, there exist problems with finding test inputs for complex checks (e.g., string equality checks). A recent approach proposes to combine fuzzing techniques with symbolic execution to effectively tackle this problem [1]. The student should examine and discuss the approach given in the pap...
متن کاملDistributed evolutionary fuzzing with Evofuzz
This paper describes the design of a tool (called Evofuzz) that implements the technique of evolutionary (or coverage-guided) fuzzing in a scalable, distributed manner. The architecture, design-choices and implementation specifics of this tool are examined, explained and criticized. After outlining possible improvements and future work that is not yet completed, the paper finishes by presenting...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: IEEE Transactions on Information Forensics and Security
سال: 2023
ISSN: ['1556-6013', '1556-6021']
DOI: https://doi.org/10.1109/tifs.2023.3237370